Hive 是建立在 Hadoop 之上的数据仓库工具，用于处理结构化数据。它提供了类似 SQL 的查询语言（HiveQL），允许用户通过 SQL 查询来分析存储在 HDFS 中的数据。

如果你需要通过 Java 代码与 Hive 交互，可以使用 **Hive JDBC** 或 **HiveServer2**。以下是使用 Hive JDBC 的示例代码。

---

### **1. 环境准备**
确保你已经安装了以下工具：
- JDK 8+
- Hadoop 和 Hive
- Hive JDBC 驱动（`hive-jdbc`）

---

### **2. 添加 Maven 依赖**
在 `pom.xml` 中添加 Hive JDBC 依赖：
```xml
<dependencies>
    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-jdbc</artifactId>
        <version>3.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>3.3.1</version>
    </dependency>
</dependencies>
```

---

### **3. 编写 Java 代码**
以下是一个通过 JDBC 连接 Hive 并执行查询的示例。

#### **3.1 Hive JDBC 示例**
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class HiveJdbcExample {
    private static String driverName = "org.apache.hive.jdbc.HiveDriver";

    public static void main(String[] args) throws Exception {
        try {
            // 加载 Hive JDBC 驱动
            Class.forName(driverName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.exit(1);
        }

        // 连接 Hive
        Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "", "");
        Statement stmt = con.createStatement();

        // 创建表
        String tableName = "test_table";
        stmt.execute("DROP TABLE IF EXISTS " + tableName);
        stmt.execute("CREATE TABLE " + tableName + " (id INT, name STRING)");

        // 插入数据
        stmt.execute("INSERT INTO " + tableName + " VALUES (1, 'Alice')");
        stmt.execute("INSERT INTO " + tableName + " VALUES (2, 'Bob')");

        // 查询数据
        String sql = "SELECT * FROM " + tableName;
        ResultSet res = stmt.executeQuery(sql);

        // 输出结果
        System.out.println("ID\tName");
        while (res.next()) {
            System.out.println(res.getInt("id") + "\t" + res.getString("name"));
        }

        // 关闭连接
        res.close();
        stmt.close();
        con.close();
    }
}
```

---

### **4. 运行代码**
1. 确保 HiveServer2 已启动：
   ```bash
   hive --service hiveserver2
   ```
2. 编译并运行 Java 程序：
   ```bash
   javac -cp hive-jdbc-3.1.2.jar:. HiveJdbcExample.java
   java -cp hive-jdbc-3.1.2.jar:hadoop-common-3.3.1.jar:. HiveJdbcExample
   ```

---

### **5. 示例输出**
如果代码运行成功，输出如下：
```
ID      Name
1       Alice
2       Bob
```

---

### **6. 代码说明**
- **DriverManager.getConnection**：连接到 HiveServer2。
- **Statement.execute**：执行 HiveQL 语句（如创建表、插入数据）。
- **ResultSet**：获取查询结果并遍历。

---

### **7. 扩展**
- **参数化查询**：使用 `PreparedStatement` 执行带参数的查询。
- **批量插入**：使用 `addBatch` 和 `executeBatch` 提高插入效率。
- **异常处理**：添加更完善的异常处理逻辑。

---

### **8. 注意事项**
- 确保 HiveServer2 已启动并监听正确端口（默认 10000）。
- 如果 Hive 运行在远程服务器上，请将 `localhost` 替换为服务器 IP 地址。
- 如果使用 Kerberos 认证，需要配置额外的认证参数。

希望这个示例对你有帮助！